package com.after.saas.common.constants;

public interface Constants {
    /**
     * 系统用户session保存名称
     */
    String DOMAIN = "after";    // 公共域
    String APP_NAME = "saas";    // 公共域
    String CURRENT_USER = "user";    // 用户
    String CURRENT_WECHAT_USER = "wechat_user";    //微信用户信息
    String CURRENT_ACTORS = "actors";    // 岗位
    String CURRENT_VIEW_ORGS = "view_orgs";    // 可查看部门
    String CURRENT_DATE = "current_date";// 当前时间
    String CURRENT_TOKEN = "token";

    String REDIS_KEY_SPLIT = ":";

    /**
     * 登录相关
     */
    String SUB_NAME_LOGIN = "login";
    String SUB_NAME_LOGIN_JWT = "login_jwt";
    String SUB_NAME_LOGIN_USER = "login_user";
    String SUB_NAME_USER_ROLES = "user_roles";
    String SUB_NAME_USER_PERMISSIONS = "user_permissions";
    String SUB_NAME_SCHEMA_TABLES = "schema_tables";
    String USER_LOGIN_SOURCE = "login_source";

    /**
     * 令牌自定义标识
     */
    String TOKEN_HEADER = "Authorization";

    /**
     * Layout组件标识
     */
    String LAYOUT = "Layout";

    /**
     * ParentView组件标识
     */
    String PARENT_VIEW = "ParentView";

    /**
     * 是否菜单外链（否）
     */
    String IS_FRAME = "1";

    /**
     * 令牌前缀
     */
    String TOKEN_PREFIX = "Bearer ";


    /**
     * JWT存储权限前缀
     */
    String AUTHORITY_PREFIX = "ROLE_";

    /**
     * JWT存储权限属性
     */
    String AUTHORITY_CLAIM_NAME = "authorities";

    /**
     * 后台管理client_id
     */
    String ADMIN_CLIENT_ID = "admin-app";

    /**
     * 前台商城client_id
     */
    String PORTAL_CLIENT_ID = "portal-app";

    /**
     * 后台管理接口路径匹配
     */
    String ADMIN_URL_PATTERN = "/mall-admin/**";

    /**
     * Redis缓存权限规则key
     */
    String RESOURCE_ROLES_MAP_KEY = "auth:resourceRolesMap";

    /**
     * 用户信息Http请求头
     */
    String USER_TOKEN_HEADER = "user";

    /**
     * 微服务名
     */
    interface RpcServiceName {

        /**
         * 权限模块
         */
        String AUTH = "http://saas-auth";

        /**
         * 系统后台模块
         */
        String SYSTEM = "http://saas-system";

    }

    /**
     * 微服务调用地址
     */
    interface RpcRequestAddress {
        /**
         * 操作日志保存
         */
        String operateLogSave = RpcServiceName.SYSTEM.concat("/system/operator-log");

        /**
         * 查询用户
         */
        String getUserInfo = RpcServiceName.AUTH.concat("/auth/user/info");

        /**
         * 根据id获取获取用户
         */
        String getUserById = RpcServiceName.AUTH.concat("/auth/user/findById");

        /**
         * 查询用户列表（分页）
         */
        String listPage = RpcServiceName.AUTH.concat("/auth/user/page");

        /**
         * 查询用户列表
         */
        String userList = RpcServiceName.AUTH.concat("/auth/user/list");

        /**
         * 节假日查询
         */
        String getHolidays = RpcServiceName.SYSTEM.concat("/system/customer/holiday");
    }

}
